﻿using ChurchDiary.TableEntity;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ChurchDiary.DAL.Contract
{
    public interface IMembers
    {
        #region Application
        EntityChurchMemberApplications GetChurchMemberApplication(Guid ApplicationId);
        List<EntityChurchMemberApplications> GetChurchMemberApplication(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        string DeleteChurchMemberApplication(Guid ApplicationId);
        string InsertChurchMemberApplication(EntityChurchMemberApplications Applications);
        string UpdateChurchMemberApplication(EntityChurchMemberApplications Applications);
        #endregion
        #region ChurchMember Family
        List<EntityChurchMemberFamily> GetChurchMemberFamilies(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        string DeleteChurchWorkerFamily(Guid FamilyId);
        EntityChurchMemberFamily GetChurchMemberFamily(Guid FamilyId);
        #endregion ChurchMember Family
        #region ChurchMember Family
        List<EntityChurchMembers> GetChurchMembers(Guid FamilyId);
        #endregion
        string TransOldFamilytoChurchMembers();
        string TransOldFamilytoApplicantTable();
        string InsertChurchMembers(EntityChurchMembers Member);
        string UpdateChurchMembers(EntityChurchMembers Member);
        string DeleteChurchMembers(Guid MemberId);
        List<EntityChurchMembers> GetChurchMembers();
        EntityChurchMembers GetChurchMember(Guid MemberId);
        List<EntityChurchMembers> GetChurchMembers(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        List<EntityChurchMembers> GetBirthDayList(Guid ChurchId);
        #region ChurchMember Jobtitle
        string InsertChurchMemberJobtitle(EntityChurchMemberJobtitle Jobtitle);
        string UpdateChurchMemberJobtitle(EntityChurchMemberJobtitle Jobtitle);
        string DeleteChurchMemberJobtitle(Guid JobtitleId);
        EntityChurchMemberJobtitle GetChurchMemberJobtitle(Guid JobtitleId);
        List<EntityChurchMemberJobtitle> GetChurchMemberJobtitle();
        List<EntityChurchMemberJobtitle> GetChurchMemberJobtitle(int PageNo, string SearchKey, string Sort, string SortMode, int PerPage);
        #endregion region ChurchMember Jobtitle
        /* #region Family
         string InsertMember(EntityMembers Members);
         string UpdateMember(EntityMembers Members);
         List<EntityMembers> GetMembers();
         List<EntityMembers> GetFamiliesWithMembers(Guid ChurchId);
         List<EntityMembers> GetFamiliesWithMembersSearch(string SearchKey);
         EntityMembers GetMember(Guid FamilyId);
         string DeleteMember(Guid FamilyId);
         List<EntityMembers> GetMembers(int PageNo, string SearchKey, string Sort, string SortMode);
         DataTable GetAllFamilyInChurchReport();
         #endregion
         #region FamilyMembers
         EntityMemberFullDetails GetFamilyMemberFulldetails(Guid MemberId);
         List<EntityBirthDay> GetBirthDayList(Guid ChurchId);
         string InsertFamilyMembers(EntityFamilyMembers FamilyMembers);
         string UpdateFamilyMembers(EntityFamilyMembers FamilyMembers);
         List<EntityFamilyMembers> GetFamilyMembers(Guid FamilyId);
         EntityFamilyMembers GetFamilyMember(Guid MemberId);
         string DeleteFamilyMembers(Guid MemberId);
         List<EntitySelectFamilyDetails> GetFamilyMembersByChurchId(Guid ChurchId);
         List<EntityFamilyMembers> GetFamilyMembersByChurch(Guid Churchid, string SearchText);
         DataTable GetFamilyMembersReport(Guid ChurchId);
         DataTable GetFamilyDetailsReport(Guid FamilyId);
         #endregion
         #region Baptism
         string InsertBaptism(EntityBaptism Baptism);
         string UpdateBaptism(EntityBaptism Baptism);
         string DeleteBaptism(Guid BaptismId);
         List<EntityBaptism> GetBaptism();
         EntityBaptism GetBaptism(Guid BaptismId);
         DataTable GetBaptismDetailsforPrint(Guid BaptismId);
         #endregion
         #region Membershipfee
         string InsertMembershipfee(EntityMembershipfee Membershipfee);
         string UpdateBaptismMembershipfee(EntityMembershipfee Membershipfee);
         string DeleteMembershipfee(Guid FeeId);
         List<EntityMembershipfee> GetMembershipfee(string year,Guid ChurchId);
         EntityMembershipfee GetMembershipfee(Guid FeeId);
         #endregion
         #region AssignJobtitle
         string InsertMemberRoles(EntityMemberRoles MemberRoles);
         string UpdateMemberRoles(EntityMemberRoles MemberRoles);
         string DeleteMemberRoles(Guid RoleId);
         List<EntityMemberRoles> GetMemberRoles(Guid ChurchId);
         #endregion
         #region ChildDedication
         string InsertChildDedication(EntityChildDedications ChildDedication);
         string UpdateChildDedication(EntityChildDedications ChildDedication);
         string DeleteChildDedication(Guid ChildDedicationId);
         List<EntityChildDedications> GetChildDedications();
         EntityChildDedications GetChildDedication(Guid ChildDedicationId);
         #endregion*/

    }
}
